草庐IT

Android Circular 确定 ProgressBar

全部标签

c# - 从 .NET 确定 C# 和 C++ 的 SLOC 和复杂性

多年来,我一直在我的项目中使用SourceMonitor来记录C#和C++组件的源代码复杂性和基本SLOC(包括注释)。这些用于向我们的客户提供外部报告,因此我无法争论它们的优缺点。我一直在研究一个存储库分析工具,它能够在任何日期/时间为我提供项目的快照View。我要添加的下一个阶段是缓存指定文件和修订的指标。我知道SourceMonitor可以编写脚本以允许我提供要测试的文件并从结果文件CSV或XML中获取指标。.NET中是否有我可以用来做同样事情的native库——例如避免生成外部进程并解析结果。我只需要以下指标:SLOC评论行数最复杂方法的复杂度最复杂方法的名称我需要在C#代码和

c++ - C++ 基类如何在运行时确定方法是否已被覆盖?

下面的示例方法旨在检测它是否已在派生类中被重写。我从MSVC得到的错误意味着试图让函数指针指向一个“绑定(bind)”成员是完全错误的,但我看不出这应该是一个问题的逻辑原因(毕竟,它将在this->vtable).是否有修复此代码的任何非hacky方法?classMyClass{public:typedefvoid(MyClass::*MethodPtr)();virtualvoidMethod(){MethodPtra=&MyClass::Method;//legalMethodPtrb=&Method;// 最佳答案 没有办法确

c++ - 虚函数是在编译期间确定的吗?

我试图查看虚函数是在编译期间确定还是在运行时确定。在寻找时我发现了一些动态链接/后期绑定(bind)但我不明白这是否意味着函数本身在可执行文件之前或可执行文件的编译过程中确定。有人可以解释一下吗? 最佳答案 对于虚函数,解析是在运行时完成的。当你有一个对象的实例时,只有在程序运行时才知道调用哪个方法的分辨率,因为只有在运行时你才知道这个实例的确切类型。对于非虚函数,这个解析可以在编译时完成,因为已知只能调用这个方法,并且不能有子类覆盖它。这也是为什么虚拟方法调用有点慢(绝对可以忽略不计但比非虚拟方法调用慢)。Thisarticle更

c++ - 从套接字接收前几个字节以确定缓冲区大小

我正在用c++使用TCP/IP和sockets编写一个分布式系统。对于我的每条消息,我需要接收前5个字节才能知道传入消息的完整长度。执行此操作的最佳方法是什么?recv()只有5个字节,然后再次recv()。如果我选择这个,假设我会在recv中得到0或5个字节(也就是不写一个循环来继续尝试)是否安全?使用MSG_PEEKrecv()一些较大的缓冲区大小,然后读取前5个字节并分配最终缓冲区。 最佳答案 您不需要知道任何事情。TCP是一种流协议(protocol),在任何给定时刻,您可以获得少至一个字节或多至数兆字节的数据。使用TCP套

c++ - 如何确定一组矩形是否包含两个具有重叠区域的矩形?

structRect{doubleleft,right,top,bottom;};std::vectorvec;现在我们有N(N>1000)个矩形,判断其中任意两个是否重叠的有效算法是什么?更新:所有这些矩形都平行于坐标系。 最佳答案 您可以用两个线段表示一个矩形:开线段(x1,y1)到(x1,y2)和闭线段(x2,y1)到(x2,y2),其中x1首先,我们可以在O(nlogn)时间内根据其x坐标对所有这些段进行排序。其次,我们逐个处理每个段,如果我们遇到一个开放段,我们将该段的interval(y1,y2)添加到intervalt

c++ - 确定一个数组是否可以分成两个子序列,每个子序列的顺序都是递增的

我目前正在为我的算法课做作业。指令摘要:用户输入一个整数“n”来确定测试用例的数量。用户单独输入另一个整数“num”以确定每个测试用例中元素的数量。用户输入单个数组的元素。算法必须处理数组并确定它是否可以划分为两个子序列,每个子序列都严格递增。如果结果是肯定的,程序打印"is",否则打印“否”。我有24小时的时间来完成这项任务,但我正在努力解决主要问题-我无法正确处理用户输入。(想出一个算法来拆分两个子序列)更新:我找到了这个解决方案。它通过了4/5测试,但在最后一次测试中未达到时间限制。#include#includeusingnamespacestd;boolrun(){intnu

c++ - 以编程方式确定 std::string 是否使用写时复制 (COW) 机制

根据这个question的讨论,我想知道使用nativeC++的人如何以编程方式确定他们正在使用的std::string实现是否利用Copy-On-Write(COW)我有以下功能:#include#includeboolstdstring_supports_cow(){//makesurethestringislongerthanthesizeofpotential//implementationofsmall-string.std::strings1="012345678901234567890123456789""012345678901234567890123456789""0

c++ - 未初始化和不确定之间的区别

我正在阅读Dotheparenthesesafterthetypenamemakeadifferencewithnew有MichaelBurr讨论uninitialized和indeterminate值。想知道它们之间的区别。我的理解是,uninitialized意味着,编译器将分配内存而不是尝试初始化对象。indeterminate->访问此对象可能会导致未定义的行为。如果我错了,请纠正我。还想知道default-initialization和value-initialization的区别。 最佳答案 我认为您的解释很接近,但完全

c++ - 使用 std::result_of 确定模板参数的返回类型

我认为这段代码是不言自明的,但基本上模板函数ExecFunc应该能够执行另一个函数并返回其结果。我知道我可以使用decltype而不是result_of获得类似的结果,但这个问题是为了理解为什么我写的东西不起作用:该片段无法在gccv4.9.2上编译。这是我的:#includeintf(inti){returni;}templateautoExecFunc(Ff,Targ)->typenamestd::result_of::type{returnf(arg);}intmain(){autoa=ExecFunc(f,3);return0;}这是编译器的输出:prova.cpp:Infun

c++ - 引用在运行时确定大小的数组

我想找这个,但找不到。我知道我可以创建对数组变量的引用:intx[10]={};int(&y)[10]=x;但是,在编译时不知道数组大小的情况下,如下面的代码:constintn=atoi(string);//thestringisreadfromatextfileatruntime.intx[n]={};int(&y)[n]=x;//thisgeneratesacompilingerror.即使将intn声明为const,只要在编译时n未知,引用就是无效的。编译器会这样说:对类型“int[n]”的引用不能绑定(bind)到不相关类型“int[n]”的值。任何人都知道如何解决这个问题?